/* Say you have an array for which the ith element is the price of a given stock on day i.
 *
 * If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.
 *
 */



class Solution {

public:
     int maxProfit(vector<int> &prices) {
   if(prices.size() < 2)
       return 0;
   int profit=0;
   int minVal = prices[0];
   
   int i;
   for(i=1;i<prices.size();i++) {
    profit = profit>(prices[i]-minVal)? profit: (prices[i]-minVal);        // Find larger profit
    minVal = minVal<prices[i]?minVal:prices[i];                            // Find minimal stock value
   }
   return profit;
   

  }

};



